<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>

<body>
    <script>
        // 很多地方不适合使用箭头函数

        // 箭头函数的特点
        //   1. 箭头函数内部，没有 arguments 对象
        // function a() {
        //     console.log(arguments);
        // }
        // a(1, 2, 3, 1, 6); // Arguments(5) [1, 2, 3, 1, 6, callee: ƒ, Symbol(Symbol.iterator): ƒ]

        // let b = () => {
        //     console.log(arguments);
        // }
        // b(3, 2, 4, 5); // 报错

        //   2. 箭头函数不能当做构造函数
        // let Person = () => {}
        // let p = new Person(); // 报错：Person is not a constructor

        //   3. 箭头函数内部，this指向外部作用域的this
        // 所以事件处理函数，不建议使用箭头函数
        // let ccc = () => {
        //     console.log(this); // window
        // }
        // ccc();

        var username = "zhangsan";
        var obj = {
            username: "lisi",
            fn1: function() {
                console.log(this.username); // lisi
            },
            fn2: () => {
                console.log(this.username); // zhangsan
            },
        };
        obj.fn1();
        obj.fn2();
    </script>
</body>

</html>